<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Lke\V20231130\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeStorageCredential response structure.
 *
 * @method Credentials getCredentials() Obtain Key information.
 * @method void setCredentials(Credentials $Credentials) Set Key information.
 * @method integer getExpiredTime() Obtain Expiration time.
 * @method void setExpiredTime(integer $ExpiredTime) Set Expiration time.
 * @method integer getStartTime() Obtain Start time.
 * @method void setStartTime(integer $StartTime) Set Start time.
 * @method string getBucket() Obtain Cloud object storage bucket.
 * @method void setBucket(string $Bucket) Set Cloud object storage bucket.
 * @method string getRegion() Obtain COS availability zone.
 * @method void setRegion(string $Region) Set COS availability zone.
 * @method string getFilePath() Obtain Cloud file storage directory.
 * @method void setFilePath(string $FilePath) Set Cloud file storage directory.
 * @method string getType() Obtain Storage type.
 * @method void setType(string $Type) Set Storage type.
 * @method string getCorpUin() Obtain Primary account.
 * @method void setCorpUin(string $CorpUin) Set Primary account.
 * @method string getImagePath() Obtain Image storage directory.
 * @method void setImagePath(string $ImagePath) Set Image storage directory.
 * @method string getUploadPath() Obtain Upload storage path to a specific file.
 * @method void setUploadPath(string $UploadPath) Set Upload storage path to a specific file.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeStorageCredentialResponse extends AbstractModel
{
    /**
     * @var Credentials Key information.
     */
    public $Credentials;

    /**
     * @var integer Expiration time.
     */
    public $ExpiredTime;

    /**
     * @var integer Start time.
     */
    public $StartTime;

    /**
     * @var string Cloud object storage bucket.
     */
    public $Bucket;

    /**
     * @var string COS availability zone.
     */
    public $Region;

    /**
     * @var string Cloud file storage directory.
     */
    public $FilePath;

    /**
     * @var string Storage type.
     */
    public $Type;

    /**
     * @var string Primary account.
     */
    public $CorpUin;

    /**
     * @var string Image storage directory.
     */
    public $ImagePath;

    /**
     * @var string Upload storage path to a specific file.
     */
    public $UploadPath;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param Credentials $Credentials Key information.
     * @param integer $ExpiredTime Expiration time.
     * @param integer $StartTime Start time.
     * @param string $Bucket Cloud object storage bucket.
     * @param string $Region COS availability zone.
     * @param string $FilePath Cloud file storage directory.
     * @param string $Type Storage type.
     * @param string $CorpUin Primary account.
     * @param string $ImagePath Image storage directory.
     * @param string $UploadPath Upload storage path to a specific file.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("Credentials",$param) and $param["Credentials"] !== null) {
            $this->Credentials = new Credentials();
            $this->Credentials->deserialize($param["Credentials"]);
        }

        if (array_key_exists("ExpiredTime",$param) and $param["ExpiredTime"] !== null) {
            $this->ExpiredTime = $param["ExpiredTime"];
        }

        if (array_key_exists("StartTime",$param) and $param["StartTime"] !== null) {
            $this->StartTime = $param["StartTime"];
        }

        if (array_key_exists("Bucket",$param) and $param["Bucket"] !== null) {
            $this->Bucket = $param["Bucket"];
        }

        if (array_key_exists("Region",$param) and $param["Region"] !== null) {
            $this->Region = $param["Region"];
        }

        if (array_key_exists("FilePath",$param) and $param["FilePath"] !== null) {
            $this->FilePath = $param["FilePath"];
        }

        if (array_key_exists("Type",$param) and $param["Type"] !== null) {
            $this->Type = $param["Type"];
        }

        if (array_key_exists("CorpUin",$param) and $param["CorpUin"] !== null) {
            $this->CorpUin = $param["CorpUin"];
        }

        if (array_key_exists("ImagePath",$param) and $param["ImagePath"] !== null) {
            $this->ImagePath = $param["ImagePath"];
        }

        if (array_key_exists("UploadPath",$param) and $param["UploadPath"] !== null) {
            $this->UploadPath = $param["UploadPath"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
